約 2,010,509 件
https://w.atwiki.jp/gdiplus2/pages/8.html
1.使い方 2.バイナリ 3.readme 4.SS 5.履歴 ◆0x0D/0x20I氏の書込,本家のreadme.txt より抜粋 はじめに 使用にあたって 動作の仕組み 使い方 作者への連絡先 ◆0x0D/0x20I氏の書込,本家のreadme.txt より抜粋 933 名前: ◆0x0D/0x20I 2006/09/27(水) 22 29 32 ID kdcoJI+4 再配布は自由。改変も自由。派生物もご自由に。ソースを利用して自作のプログラムに 組み込んだ場合はその旨をどっかに明記。転売はだめだけど、商用利用は別にかまわない。 改変した場合のフィードバックは義務じゃなくて良心で。 はじめに Windows@2ch掲示板では、日々スクリーンフォントの表示を改善しようと数多くの人が奮闘しておられるようです。そもそも元凶はといいますと、Windowsのフォントレンダラの品質の悪さです。そんなフォントレンダラに振り回されるのも空しいので、gdi32.dllを乗っ取ってしまいましょう。 使用にあたって 言うまでも無く、非常に危険な代物です。ソフトウェアの挙動を理解した上でご利用ください。CPUパワーを必要とするので、できるだけハイスペックなPCをお奨めします。現在のところ、Windows 2000/XP で動作するハズですが、基本的にXPでのみ動作確認しています。使用は自己責任でお願いします。どんな損害がおこっても補償できません。 動作の仕組み ExtTextOut()が呼ばれる フォントサイズを整数倍にする 描画。 縮小。 転送。 背景モードが透明な場合は、あらかじめ背景も整数倍に拡大して転送することで、アルファブレンド処理をフォントレンダラに丸投げします。 使い方 仕掛けたい実行ファイルをgdi++.exeにドラッグ ドロップすると、フックされた状態で起動します。Windows標準のコントロールのフォント描画にも影響が及びます。 作者への連絡先 gdi++.dllhttp //drwatson.nobody.jp/gdi++/ 【美しく】gdi++.dll スレッド【鮮やかに】http //pc8.2ch.net/test/read.cgi/win/1158937333/ WindowsのフォントスレッドVer.16http //pc8.2ch.net/test/read.cgi/win/1153828837/
https://w.atwiki.jp/vstplugins/pages/24.html
AKOUSTIK PIANO 「Synthogy Ivory」や「Steinberg The Grand 2」と並ぶピアノ音源。 比較的後発なので、UIやクオリティも練られています。 MIDIA (日本輸入元) Native-Instruments (開発元) ソフトウェア バージョン履歴 1.1 公開日 2006/06/21 インターフェイス スタンドアロン、Audio Units、RTAS、VST、DXi、Core Audio、Direct Sound 主な特徴 著名な3つのグランドピアノと1つのビンテージ・アップライト・ピアノをモデリング 使いやすい直感的なユーザー・インターフェイス 完全なるドライ・レコーディングが生み出す最高のアコースティック・サウンド サスティーン、リリース時の位相変化までも表現する超高品質なサンプル 「レイヤー・モーフィング技術」(ベロシティ・レイヤー間のインターポーレーション技術)により、<キータッチによる音色の変化>を余すところ無くなめらかに表現 弦の共鳴音やメカニカル・ノイズの付加調整機能により、ハンマーのフェルトの質感やペダル・ミュートの感じをもリアルに表現 音場空間を忠実に表現し、音響特性を調整可能な4種類の「コンボリューション」ルーム・シミューレーター搭載 反応の異なるマスター・キーボードのために、ベロシティー・カーブの受信特性を調整可能 3バンド・イコライザー、メトロノーム、レコーダー機能を搭載 定評のKONTAKT 2サンプル・エンジンにより、ループ取りの一切ない高品質な大容量サンプルを高速にストリーミング・プレイバック 平均律、純正律、ピタゴラス調律などの広範囲なチューニング設定に対応。 名前 コメント
https://w.atwiki.jp/gdiplus2/pages/27.html
gdi++.dll 使い方 バイナリ readme SS 履歴
https://w.atwiki.jp/flstudio2/pages/60.html
このページはFL Studioの情報をまとめていたwiki「[[FL Studio @ ウィキ]]」のアーカイブです。 情報はかなり古い(2008〜2015年ころ)のでご了承ください。 外部プラグイン(VST/DX)どうやったらVSTi使えるようになるんですか? VSTインストとVSTエフェクトを別フォルダにおきたいんですが、どう設定すればよいのでしょうか? FL11にアップデートしたらDXプラグインが使えなくなってしまいました! ChordSpaceやChordMeはどうやって設定するの? サードパーティのVST(VSTi)プラグインで特定のパラメータをオートメーションコントロールするにはどうすればいい? VSCやSampleTank等のマルチティンバーのプラグインを多チャンネル同時に鳴らすにはどうすれば良いんでしょう? 【旧情報】同じプラグインの新旧バージョンを共存させようとしてディレクトリ分けたんだけど、どちらを選んでも古い方がロードされてしまうみたいです 俺のお気に入りのVSTがFL上で動かないんだけど!何だよこのDAW不良品だろ!スレッドセーフでないプラグイン対策 動的バッファサイズ未対応プラグイン対策 FPCみたいに他のドラム音源でもピアノロールにノート名を表示して欲しいんだけど FL以外のソフトとの連携VOCALOID使えますか? FRUITYで作った3つWAVファイルをACID XPRESSを使いミックスさせてみたのですが、それらのファイルは共にBPM140なのですが、ACIDでファイルを鳴らすとずれるのですがどうすれば? 外部エディタに波形編集ソフト登録し、それを起動して音を出そうとすると「MMSYSTEM004なんとかこのデバイスは既に使用中です」等と表示され、ソフトを一度終了しないといけなくなってしまう Amplitube 2以前をインスコしたけど使おうとするとFL Studioがクラッシュしてしまう MIDI・外部機器・ハード音源との連携MIDI音源持ってないけど、FLだけでMIDIデータを簡単に鳴らす方法は? midi outを追加してピアノロールからmidiファイルを読みこんだんですが音がでません。 MIDI鍵盤を使用したピアノロールへのリアルタイム打ち込みが上手く出来ない このソフトのシーケンスで他のシンセやリズムマシンはシーケンス組めるのか? Fruityから外の音源(例えばPCの内部音源)のベースを鳴らすというのはどうしたらいいのか Fruityと外部MIDI音源の発音タイミングがズレるのですが? Pro-52の音源を弄っていて、マウスではなくツマミでいじくりたくなったんですがMIDIコントローラできる? 外部音源を鳴らした際に音が飛びます フルーティってBuzzMachineはつかえる? 外部のMTRと同期させてるんだけど(MTRがマスター)ズレてしまう Fruity Loopsから、TRITONやFANTOMを操作できる? MIDIキーボードで入力する際にフットスイッチでサステインって入力できてますか? 外部の鍵盤からの打ち込みは出来る? このソフトって4OUTとかついてるIF使えば別々に音出せたりしますか? 外部プラグイン(VST/DX) どうやったらVSTi使えるようになるんですか? 指定してあるプラグインフォルダにプラグインのファイルを入れてCHANNELS→Add one→more.を選ぶ。 プラグインの一覧が出るので、その窓の右下にあるRefreshを押して再検索する(Fast scanで可)。 何か新規に出てきたら、それをクリックする。 あとは再びCHANNELから選んでやれば出るはず。 ちなみにFLはVSTもVSTiも一緒にVSTプラグイン扱いするので 本当は別個にフォルダを掘って、OPTION→File setting→VST plugins extra search folderにそのフォルダを指定する方が、あとあと選別するときに良いと思う。 ※Fast scanは速いが、拡張子がdllのファイルはプラグイン本体でなくとも全てデータベースに追加する。 Scan verifyは一つ一つ実際にロードしてみて成功したものだけをデータベースに追加する。大量にロードするので遅いうえ、行儀の悪いプラグインがあるとそこで固まったりするのであまりおすすめできない。 VSTインストとVSTエフェクトを別フォルダにおきたいんですが、どう設定すればよいのでしょうか? 例えば、 C \Program Files\Plugins\Instrument にインストプラグイン、 C \Program Files\Plugins\Effect にエフェクトプラグイン。 この状態で、FL のプラグインフォルダーを C \Program Files\Plugins に指定しておくと、 それ以下のフォルダーもスキャンしてくれます。 FL11にアップデートしたらDXプラグインが使えなくなってしまいました! FL11よりDX/DXiプラグイン対応は削除されてしまいました…。 開発元のCakewalkの方でもレガシー規格扱いになっててもはやまともにサポートしておらず、いくつかバグがあるのだが修正の見込みもない、というのが理由だそうです。残念ですがあきらめてください。 ChordSpaceやChordMeはどうやって設定するの? ChordSpaceの使い方 手順1 ChordSpaceをVSTiとして立ち上げ、左上のチェックボックスから「midi out」の設定を任意の数字にする(たとえば1)。 手順2 鳴らしたいVSTi(たとえばsytrus VSTi)を立ち上げて、左上のチェックボックスから「MIDI IN」を手順1で設定した数値と同じ数字にする(この場合は1) 手順3 ChordSpaceの六角を適当にクリックするとあら楽しい (以上過去スレより) お役立ち情報 (2)GUI右側、Midinoteの列は、midiコントローラーに対応。48→鍵盤のC4に対応、という風に。隣の列のHex#の部分をクリックすると6角形各部に対応コード番号が現われる。つまりこの2列×8マスを、それぞれ鍵盤とコードにアサインして演奏する。 (3)FL純正のジェネレーターはMidi inputポートがないから使えない。つまりSytrusはNGで、Sytrus VSTiやその他フリーのVSTiはおk。 ChordMeは知りません。 サードパーティのVST(VSTi)プラグインで特定のパラメータをオートメーションコントロールするにはどうすればいい? 1.VSTのPlugin optionsをクリックしてBrowseParametersを選べばOK。 左にずらっと出るのでパラメータ名を右クリックすれば好きにオートメーションくめる。 2.LastTweakedParamaterでも行けるよ。たぶんこっちのほうが楽。 まずVSTiのオートメーションしたいツマミをマウスでちょっと動かす。 次にVSTi左上のメニューのLastTweakedParameterからEditEventsかCreateAutomationClipを選ぶ。 たったこれだけ。 VSCやSampleTank等のマルチティンバーのプラグインを多チャンネル同時に鳴らすにはどうすれば良いんでしょう? SampleTankの例を挙げておこう。 MIDI outを多チャンネルの数だけ用意 各MIDI outのMIDIポート番号を、とりあえず1,2,3…と振っておく SampleTankを立ち上げ右上のポート番号を「--」から「0」にする SampleTank左下のMIDI番号にそれぞれ割り振りたい音色を定義 また上記の例の他にもピアノロール左上の色を選択することで音源へのMIDI出力チャンネル(1~16)を指定する方法があります。 【旧情報】同じプラグインの新旧バージョンを共存させようとしてディレクトリ分けたんだけど、どちらを選んでも古い方がロードされてしまうみたいです 9以前のFL Studioはdllのファイル名のみでプラグインを区別しているため、同じ名前のdllがあると常に最初に見つかった方がロードされてしまいます。 お手数ですが片方のdllをリネームするなどして対処して下さい。 ※FL10から、プラグインのdllはフルパスで管理されるようになりましたので使い分けできます。 ただしファイル名が同じだと選択時に区別がつかなくなってしまいますので、やはりリネームはしておいた方がいいでしょう。 俺のお気に入りのVSTがFL上で動かないんだけど!何だよこのDAW不良品だろ! まあ落ち着け。 VSTの互換性に関するオプションがいくつかあるので、まずは以下の対策を一つずつ試してみて下さい。VSTページには個別の動作確認報告もあります。 スレッドセーフでないプラグイン対策 1. プラグインウィンドウ左上の三角の隣にある歯車タブを開き、PROCESSING→「Allow threaded processing」をOFF マルチスレッド/マルチコア処理に対応していないことが原因だったらこれで動くようになります。 使いたいプラグインがフリーソフトだった場合はまずこちらを疑いましょう。というのはフリーVSTの圧倒的多数は「SynthEdit」というVSTツクール的なシェアウェア(安いうえ旧バージョン時代は無料だったので人気が高い)で作成されており、このソフトがマルチスレッド未対応のdllを吐き出すからです。 最新のSynthEditでは修正されてるそうですが、金を払いたくなくて旧バージョンを使い続けてる人とか、単純にメンテを忘れてる人とかがいっぱいいるので今日でも頻繁に遭遇します。 なおマルチスレッド処理を切ることになるので、重いプラグインでは当然パフォーマンスが落ちます。もっとも軽いプラグインではもともとマルチスレッド化するメリットがないので、フリーソフトならほとんど影響ないものの方が多いと思います。 専門的な内容になるので必ずしも読む必要はありませんが、マルチスレッド化についてはgol Tipsでgol自身が詳しく解説していますので、興味のある方はご覧下さい。 2. 複数起動したい場合は、dllを必要な数だけコピー&リネームしておき、それぞれ一個ずつ立ち上げる。 前述のマルチスレッド問題を抱えたプラグインは、しばしば二個以上立ち上げた場合にも不具合を引き起こします。この問題が発覚した場合は、ちょっと面倒ですが1.に加えてさらにこの対策を取って下さい。 たとえばDSK Brassだったら「DSK Brass 1.dll」「DSK Brass 2.dll」…のようにたくさんコピーを作っておき、チャンネル毎に異なるdllファイルをロードするようにします。 動的バッファサイズ未対応プラグイン対策 1. 歯車タブから PROCESSING→「Use fixed size buffers」をON。 あくまで目安ですが、音にノイズが入る場合、レンダリングで音ずれが起きる場合などはこちらの可能性を疑ってみて下さい。独自エンジンで最適化している市販製品に多いケースです。 VST2の仕様では、プラグインが処理すべきサンプル数はホストが毎回APIの引数として送ってくるので毎回それを見るのが正しいのですが、少なくない数のVSTが勝手に「毎回同じだろう」と想定して無謀にも決め打ち処理を行います。このオプションをONにすると、決め打ちされても問題が出ないように常に一定量送るようになります。 ONにした場合のデメリットとしては、中で一度バッファリングしてから送ることになるのでプラグインによってはレイテンシが増えてしまうことだそうです。でも動かないよりはマシでしょう。 FPCみたいに他のドラム音源でもピアノロールにノート名を表示して欲しいんだけど VST2.1の仕様に入っているのでVSTi側で対応してくれればすぐにでもできるんですが、どうも放置してるメーカーが多いみたいです。 親切なプラグインだったらちゃんと情報を送ってくれるので表示できます(たとえばLinPlugやd16の製品は対応済み)。 FL Studio側で強制指定することは残念ながらできません。VSTメーカーの方に要望を出して下さい。 FL以外のソフトとの連携 VOCALOID使えますか? Version 1(MEIKO等)とVersion 2(初音ミク等)で異なります。 Version1 クリプトン | VOCALOID Ver1.1.0 リリースノートより引用 FL STUDIOシリーズをご使用のユーザー様へ FL STUDIOの仕様によりVOCALOID VSTiは動作致しません。 VOCALOID VSTiの歌詞/音符情報はNRPNデータにて送信される為、これを正しく送信できないシーケンサーではご使用頂く事ができません。 VOCALOIDは FL STUDIOにてReWireデバイスとして正しく動作いたしません。 参考リンク Vocaloid FAQ Version2 Rewireクライアントとして使えます。 FL StudioでRewireクライアントとしてVOCALOID 2指定 Vocaloid Editorを立ち上げる(自動的には立ち上がらん) Vocaloid Editorの設定で、出力先をRewireにする ただし、Vocaloid Editorは少々作業し辛いので、最初から最後までRewireで作業するのには向きません。 (FLの問題ではなく、Vocaloidの問題です) Rewireで行うのはテンポの同期やタイミングのチェック程度と考え 最終的にはWAV出力したものをFLに持って来てミックスするのが良いでしょう。 FRUITYで作った3つWAVファイルをACID XPRESSを使いミックスさせてみたのですが、それらのファイルは共にBPM140なのですが、ACIDでファイルを鳴らすとずれるのですがどうすれば? wavを書き出すときにACIDIZEボタンをチェック。 外部エディタに波形編集ソフト登録し、それを起動して音を出そうとすると「MMSYSTEM004なんとかこのデバイスは既に使用中です」等と表示され、ソフトを一度終了しないといけなくなってしまう option - audioの設定にあるデバイスを選ぶところの右にある「auto close device」を点灯させてみる。 ちなみにSoundForgeだとこの辺はぜんぜん平気。DS(DirectSound)だと衝突しないのかなと。 Amplitube 2以前をインスコしたけど使おうとするとFL Studioがクラッシュしてしまう ※Amplitube 3以降ではこの問題は発生しません。また、下記の説明はFL7頃のものであり、現在のバージョンでは設定方法が異なります。 本家フォーラムでも度々あげられている問題で、環境によって発生する人、しない人がいる。 必ず発生するわけではない。 確認したのは Amplitube 2 Amplitube Live Amplitube Metal AmpegSVX UNO なお、SampleTank 2.5 SEやT-RackSでは発生しない。 発生する内容はFL Studio起動後にミキサーから問題のあるVSTを選択。 プリセット等を変更しようとすると "0xffffffff"の命令が"0xffffffff"のメモリを参照しました。メモリが"read"になることはできませんでした。 というエラーメッセージが表示され、FL Studioが異常終了する 特にAmplitube Metal/AmpegSVX UNOにいたっては選択して数秒後に勝手にエラーが発生してまともに使用することができない。 解決方法は http //forum.image-line.com/viewtopic.php?t=16935 highlight=amplitube とかにも掲載されているが、FL Wrapperプラグインのオプションで「use fixed buffers」にチェックすることである。 FL Studioを起動 ミキサーから問題のあるプラグインを選択(VSTiの場合はChannelから) 左上にある▼のうち、下側の▼をクリックすると「compatibility」- 「use fixed size buffers」があるのでクリックしてチェックマークをつける(画像参考) 一度FL Studioを終了する 再度FL Studioを起動すると正常にプラグインが使用できるようになる 更に上記手順でも変更できないVST(Amplitube Metal/AmpegSVX UNOは変更する前にエラーが発生する)の場合は http //forum.image-line.com/viewtopic.php?t=17147 highlight=amplitube+access+violation に掲載されている方法で対処する。 具体的には このスレッドにある「pluginfo.zip」をダウンロードする。 pluginfo.zipを解凍する 解凍してできたpluginfo.exeをダブルクリックして起動する。XPやVistaの場合は起動しますかと警告メッセージが表示されるかもしれないが、気にせず起動する 4.画像の順番に操作する 1.問題のあるプラグインを選択 2.retrieve infoボタンをクリック 3.下側に情報が表示されるので「use fixed size buffers」をクリックしてチェックする 4.下側のApply for pluginボタンをクリックして適用する これでFL Studioを起動すれば、問題なく使用できます。 MIDI・外部機器・ハード音源との連携 MIDI音源持ってないけど、FLだけでMIDIデータを簡単に鳴らす方法は? MIDIデータをMIDI outに読み込む MIDI out の port を適当に設定 ミキサーの適当なトラックに Fruity LSD を追加して、ポート番号を合わせる FLからどっかにMIDIデータを送った振りをして どっかからFLに送られたMIDIデータを受け取る、みたいな感じ。 midi outを追加してピアノロールからmidiファイルを読みこんだんですが音がでません。 MIDI音源いくつかある場合、オプションのとこでport numberをそれぞれに割り振って、 MIDI outのportのとこをそのnumberに合わせると出ると思いますです。 MIDI鍵盤を使用したピアノロールへのリアルタイム打ち込みが上手く出来ない メニューの OPTIONS - Enable MIDI remote control にチェック付いてますか? OPTIONS- MIDI settings(F10) - Keyboard input の Record to step sequencer にチェック付いてませんでした? それが付いてると、ピアノロールではなくステップシーケンサーに MIDI入力データが反映されるので、モノしか受け付けないようですが。 このソフトのシーケンスで他のシンセやリズムマシンはシーケンス組めるのか? midiで繋げばハードのシンセやドラムシンセのシーケンスが組める。 ソフトならvstiで組める。 しかし、wav録音はできないからpcとかシンセから出た奴をミキサーで整えてから録音機器でまとめる必要がある。ボーカルとかのっけたりするときはかなりやりづらいから、ワンショットとか多用するのが基本かつ常套かと。しかし、ボーカルのwavを切って、トラックに乗っけてみたいよな。 FL7の現在ではMIXERでの外部音入力もモノラル、ステレオ自由にルーティング可能であり、波形編集ソストであるEdisonを併用することで録音作業もかなり自在に出来るように改善されている。 外部音源の操作についてはMIDI OUT,Dashboardを利用することでSysEX以外のMIDI情報であれば全て可能。 Fruityから外の音源(例えばPCの内部音源)のベースを鳴らすというのはどうしたらいいのか 外部 MIDI 音源を利用するなら、channel に MIDI out ってのを追加して利用すれば良いですよ。 OPTIONS の MIDI settings で、MIDI OUT が正しく設定されていて、OPTION メニューの Enable MIDI output にチェックが入っていれば、外部 MIDI 音源が鳴ると思います。 Fruityと外部MIDI音源の発音タイミングがズレるのですが? MIDI out の Channel settings > Time > Shift を調整して、発音タイミングをわざと遅らせてタイミングを合わせます。 他の方法として、MS GS Wavetable SW Synthe などの、DirectMusic 系の音を鳴らすならば、 http //www.fruityloops.com/documents/302.html ここの Fruity LSD を使う方法があります。 これだと、DLSファイルを直接再生するので、発音遅延は無いですし export でwav 吐き出しなどしてもちゃんと録音されます。 使用方法はエフェクトウィンドウで適当なトラック(僕の場合は13)にこれを割り当て、チャンネルセッティングとLSDのポート番号を合わせればOKです。 このFruity LSDを使用するのにDirectXが必要です。 Pro-52の音源を弄っていて、マウスではなくツマミでいじくりたくなったんですがMIDIコントローラできる? ハードウェアのコントローラを所有してないので、試すことはできなかったですが、Pro-52 等でも Link to controller の所に表示されるものは各々MIDI ch と CC# をアサインしてコントロールできる様です。 外部音源を鳴らした際に音が飛びます オプションのWAVEセッティングでレイテンシー多めに設定(200ms程度等)。 フルーティってBuzzMachineはつかえる? 使える。ただMachineによって使えない物があるから(使うと異常終了するとか)気を付けて。 デフォで入ってるものは全部使える。外部の物の場合目安としては、シンセ系統ならほぼ使える。 外部のMTRと同期させてるんだけど(MTRがマスター)ズレてしまう 自分も同期させて使ってるんですけど(自分はPCのHDRSOFT) MENUの[Option]→[Enable MIDI remote control]にチェック入れて MIDI settingでMIDI inputをMTRと繋いでるMIDIインターフェイスに合わせるくらいしか知らんです。 ずれるのは自分もなります。CPUメータ超えたりガタガタってなった時に起こりやすいみたいです。 (最初使っているAUDIO I/Oのせいかと思ってた) それで再起動すると直ります。 master syncのチェックとかsyncのランプはFruity側をスレーブにする時は気にしなくていいみたいです。 Fruity Loopsから、TRITONやFANTOMを操作できる? TRITONやFANTOMに限定であればそれらを所有していないので何ともいえませんが、 外部音源を演奏(操作)することはある程度可能です。エクスクルーシブデータでの操作なんかは多分できないです。 MIDIキーボードで入力する際にフットスイッチでサステインって入力できてますか? MIDI音源の音ならMIDIOUT(CC64)とFruityLSDでサスティンで鳴らすことはできます。 外部の鍵盤からの打ち込みは出来る? 出来る。 尚、実は真中のデータスライダーもコントロール割り当てが可能。 マウスが疲れるなどと言う輩は曲の設定を32STEPにして仮メロを簡易キーボードで打ち込んでからピアノロール化していくとよい。 ただし、音符はベタ打ち、ソングは全部2小節区切りになる。 このソフトって4OUTとかついてるIF使えば別々に音出せたりしますか? ASIO対応ならば可能。
https://w.atwiki.jp/gdiplus2/pages/26.html
1.使い方 2.バイナリ 3.readme 4.SS 5.履歴 使用にあたって 使い方 オプション一覧 使用にあたって 言うまでも無く、非常に危険な代物です。ソフトウェアの挙動を理解した上でご利用ください。CPUパワーを必要とするので、できるだけハイスペックなPCをお奨めします。 現在のところ、Windows 2000/XP で動作するハズですが、基本的にXPでのみ動作確認しています。使用は自己責任でお願いします。どんな損害がおこっても補償できません。 使い方 仕掛けたい実行ファイルをgdi++.exeにドラッグ ドロップすると、フックされた状態で起動します。Windows標準のコントロールのフォント描画にも影響が及びます。 オプション一覧 設定ファイル"gdi++.ini"を同じディレクトリに置くことで、レンダリングの設定ができます。(なくても動きます) [General] Quality=1 Weight=0 Enhance=0 UseSubPixel=0 SubPixelDirection=0 MaxHeight=0 ForceAntialiasedQuality=0 [Exclude] FixedSys Marlett メイリオ [Individual] Tahoma=3 [ExcludeModule] iexplore.exe firefox.exe Qualityフォントの品質を調節します。0 何もしない 1 2倍キレイ(デフォルト) 2 3倍キレイ 3 4倍キレイ Weightフォントの濃さを調節します。(n + 1)回重ねて描画します。 Enhance水平・垂直の輪郭線を強調します。0 強調しない(デフォルト) 1 少し強調 2 ふつうに強調 3 強く強調 4 激しく強調 UseSubPixel簡易サブピクセルレンダリング(ClearTypeもどき)を有効にします。0 つかわない(デフォルト) 1 つかう SubPixelDirectionサブピクセルレンダリングを使うときの、サブピクセルの並び順を指定します。ほとんどの液晶モニタは左からRGBの順にサブピクセルが並んでいますが、たまにBGRの順で並んでいるモニタもあるようです。0 RGB(デフォルト) 1 BGR MaxHeightスムージングを掛ける最大のフォントサイズを「ピクセル単位で」指定します。0 すべてのサイズ(デフォルト) ForceAntialiasedQualityWindowsのClearTypeを無視するかどうかを指定します。無視すれば描画が高速になります。0 標準の品質(デフォルト) 1 ClearTypeを無視 [Exclude]セクション標準のレンダラで描画したいフォントを一行に一書体ずつ記入します。フォント名がリストに合致すれば、gdi++.dll は標準のレンダラに描画を丸投げします。ビットマップフォントや、ClearType系のフォントにどうぞ。 [Individual]セクション指定したフォント毎にWeightを設定できます。 [ExcludeModule]セクションgdi++.dllを適用させたくない実行ファイルを指定できます。このセクションに記述された実行ファイルにはgdi++.dllが適用されません。
https://w.atwiki.jp/vstplugins/pages/89.html
Vocaloid KAITO メディアファージ (日本輸入元) ZERO-G (開発元) イントロダクション 『KAITO(カイト)』はプロの男性シンガーをモデルとした、日本語男性ボーカル・ソフトウェアです。素直で伸びの有る声質は、実際のプロシンガーをモデルにした高い歌唱力に裏付けられております。 また、『KAITO』は様々な音楽ジャンルを器用に歌い上げます。例えば、POPSを初めとした歌謡曲全般~童謡までをオールマイティにこなすのは勿論、スタンダードなROCK全般や、流行のR Bにおける印象的なメロディラインまで、本格的なボーカルラインを実現。クセのない素直な声質、厚みのあるパワフルな低域部、しっかりとした発声で、男性らしい安定感の有る中域部、伸びやかで、印象的な高域部。メイン・ボーカルとしてだけではなく、2声、 3声のコーラスとしても大いに活躍してくれるでしょう(バンドのバックコーラスにもバッチリ!)。また、日本語女性ボーカル・ライブラリ『MEIKO』との相性もバッチリ。2製品によるデュエットにも対応します。 VOCALOIDは24時間いつでもベストコンディションで、最高の歌声を披露してくれます。まるで歌手が生で歌っているようなナチュラルなボーカルラインやハーモニーは、従来の音声合成ソフトを遥かに凌ぐものです。(本製品にはVOCALOIDソフトウェア本体とKAITOライブラリが含まれています) 主な特徴 VOCALOID Editorの主な特徴:●歌声をエディット 合成する為に考え抜かれたインターフェース ●ノート・エディット用のピアノロール画面 ●容易な歌詞入力方法 ●ドラッグ ドロップにより簡単に音楽表現(ビブラートなど)をプラス ●任意の位置でVOCALOIDライブラリの切り替えが可能 ●リアルタイム・ボーカル・トラック合成 ●ボーカル・データのWAVファイルへの書き出し ●最高16ボーカル・トラック ●スタンダードMIDI ファイルの読み込み ●ReWireデバイスとしてReWire対応ソフトウェアと同期可能 VOCALOID VSTインストゥルメント:●VOCALOID Editorによって生成されたボーカルMIDIトラックをVST対応ホスト・アプリケーション上で再生 ●声の特徴を簡単にコントロール VOCALOIDライブラリ:●プロ・ボーカリストの声/発音をデータベース化 ●全発音要素を収録。如何なる歌詞でも歌唱可能 ●日本語対応 ●通常の歌に用いられるビブラートや表情付けのテンプレートを装備 名前 コメント
https://w.atwiki.jp/kimikage/pages/121.html
user32.dllのGetCursorPosで画面上の座標を取得する。 using System.Runtime.InteropServices; using System.Threading; using System.Windows; namespace WpfApp { /// summary /// MainWindow.xaml の相互作用ロジック /// /summary public partial class MainWindow Window { [DllImport("user32.dll")] private extern static bool GetCursorPos(out POINT lpPoint); private [[delegate]] void SetCursorPosDelegate(POINT point); /// summary /// コンストラクタ /// /summary public MainWindow() { // コンポーネントの初期化 InitializeComponent(); Thread thread = new Thread(new ThreadStart(ViewCurrentCursorPos)); thread.IsBackground = true; thread.Start(); } /// summary /// thread method /// /summary private void ViewCurrentCursorPos() { POINT point = new POINT(); while (true) { // call user32.dll GetCursorPos method if (GetCursorPos(out point)) { SetCurosorPos(point); } Thread.Sleep(100); } } /// summary /// set cursor position to label content /// /summary /// param name="point" /param private void SetCurosorPos(POINT point) { if (LblCursorPos.Dispatcher.CheckAccess()) { LblCursorPos.Content = string.Format("X {0},Y {1}", point.X, point.Y); } else { LblCursorPos.Dispatcher.Invoke(new SetCursorPosDelegate(SetCurosorPos), point); } } /// summary /// point /// /summary public struct POINT { public int X { get; set; } public int Y { get; set; } } } } サンプルソース
https://w.atwiki.jp/vst_prog/pages/65.html
Effector Tips ディレイ用のバッファ ディレイを実装するにあたり、リングバッファと呼ばれるバッファを用意する。 リングバッファとはデータ確保領域が環状に配置されたエンドレスなバッファである。 環状なバッファため、配列とは違い「先頭から○○番目のデータ」のような指定ができない。そのため、読み取りと書き込みを行うバッファ位置の情報を持つ。 この読み取り位置を進める(戻す)ことで必要なデータを読み出す。 リングバッファ実装概要 実際には1次元バッファを用意し、基準位置がバッファの大きさを超えるとバッファ先頭へ戻るという処理を行うだけである。 ディレイの実装方法概要 以下のステップで入力信号を処理することでディレイを実装することができる。 入力信号をリングバッファへ書き込む リングバッファの書き込み位置を1つ進める リングバッファからデータを読み出す リングバッファの読み出し位置を1つ進める 読み出したデータと入力信号を加算し、出力信号とする。 ディレイとリングバッファの関係 上記のディレイの実装方法では、入力信号を書き込むと同時にデータを取り出しているため、リングバッファの読み込み位置・書き込み位置の距離(Interval)がそのまま入力信号の遅れる時間となる。 たとえば入力信号を0.5秒遅らせたい場合、読み込み位置と書き込み位置の距離(Interval)を22050バッファ分とすればよい(サンプリング周波数44100の場合) 同一カテゴリのTips No. 概要 ディレイ01 ディレイとは、ディレイの処理内容概要 ディレイ02 ディレイ用バッファについて、ディレイの実装概要 ディレイ03 リングバッファの実装 ディレイ04 VSTでのシンプルなディレイの作成 ディレイ05 シンプルなディレイへのフィードバックの追加
https://w.atwiki.jp/levfier/pages/21.html
FileLoadExceptionが発生する FileLoadExceptionが発生する 現象 VSTプラグイン読み込み時にFileLoadExceptionが画面に表示され、VSTプラグインの読み込みに失敗する。 対策 解凍したフォルダに移動する。 dllファイルを右クリックする。 プロパティを選択する。 全般タブのセキュリティにおいて、「ブロックの解除」を選択する。 上記処理を全ての解凍した全てのdllに対して行う。 参考ページ http //stackoverflow.com/posts/8268636/revisions
https://w.atwiki.jp/abwiki/pages/452.html
前回は素のwaveファイルお再生しました。 これを使えばほかのものでも応用ができます。 今回はmp3をやります。 mp3はデコーダやプレイやがあって今さらですけど、 ABでもできるんですよ。 今回使うのは定番のmpglib.dllです。 mpglib.dllのある場所http //mpesch3.de1.cc/misc.html こいつはABから使うことを想定していないしドキュメントも不親切です だから元となったmpg123というライブラリも調べてみるといいかもしれませんね。 まずこのDLLは3つの関数しかないので、簡単ですけど、便利な昨日がないので 自分で作ります。 ID3V2も自力で読み飛ばさないといけません。 abmpglib.abp Const AUDIOBUFSIZE = 16384Const SBLIMIT = 32Const SSLIMIT = 18Const SCALE_BLOCK = 12 /* Layer 2 */Const MPG_MD_STEREO = 0Const MPG_MD_JOINT_STEREO = 1Const MPG_MD_DUAL_CHANNEL = 2Const MPG_MD_MONO = 3Const MAXFRAMESIZE = 1792Const MP3_ERR = -1Const MP3_OK = 0Const MP3_NEED_MORE = 1Type al_tablebits As Wordd As WordEnd TypeType framestereo As Longjsbound As Longsingle As Longlsf As Longmpeg25 As Longheader_change As Longlay As Longerror_protection As Longbitrate_index As Longsampling_frequency As Longpadding As Longextension As Longmode As Longmode_ext As Longcopyright As Longoriginal As Longemphasis As Longframesize As Long /* computed framesize */II_sblimit As Long /* Layer 2 */alloc As *al_table /* Layer 2 */do_layer As VoidPtr /* Layer 2 */End TypeType mpglib_bufpnt As *Bytesize As Longpos As Longpnext As *mpglib_bufprev As *mpglib_bufEnd TypeType framebufbuf As *mpglib_bufpos As Longpnext As *frameprev As *frameEnd TypeType mpstrhead As *mpglib_buftail As *mpglib_bufbsize As Longframesize As Longfsizeold As Longfr As framebsspace[ELM(2*(MAXFRAMESIZE+512))] As Byte /* MAXFRAMESIZE */hybrid_block[ELM(2*2*SBLIMIT*SSLIMIT)] As Singlehybrid_blc[ELM(2)] As Longheader As DWord bsnum As Longsynth_buffs[ELM(2*2* h110)] As Singlesynth_bo As LongEnd TypeType ID3V2ID3[2] As Bytemajorversion As Byterevision As Byteflag As Bytesize[3] As ByteEnd TypeDeclare Function InitMP3 CDECL Lib"mpglib.dll" Alias "_InitMP3" (mp As *mpstr) As LongDeclare Sub ExitMP3 CDECL Lib"mpglib.dll" Alias "_ExitMP3" (mp As *mpstr)Declare Function decodeMP3 CDECL Lib"mpglib.dll" Alias "_decodeMP3" (mp As *mpstr, inmemory As *Byte, inmemsize As Long, outmemory As *Byte, outmemsize As Long, done As *Long) As LongDim br_tbl[1,14] = [[ 0, 32, 40, 48, 56, 64, 80, 96,112,128,160,192,224,256,320],[ 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160]] As LongDim rate_tbl[9] = [44100, 48000, 32000, 22050, 24000, 16000 , 11025 , 12000 , 8000, 0] As Long'ID3V2のサイズを詰めるFunction unpack_sint28 (ptr As *Byte) As DWordDim value As DWordIf (ptr[0] And h80) Then Exit Functionvalue = value Or (ptr[0] And h7f)value = (value 7) Or (ptr[1] And h7f)value = (value 7) Or (ptr[2] And h7f)value = (value 7) Or (ptr[3] And h7f)unpack_sint28 = valueEnd FunctionType ABMP3DEC_CTXmp As mpstrbuf[AUDIOBUFSIZE] As BytehF As HANDLErate As Longch As Longpcmb As DWordstartpos As DWordmore As Longstatus As LongEnd TypeDim mc As ABMP3DEC_CTX'mp3ファイルを開いてデコード準備Function OpenMp3(mp3file As *Byte) As LongDim size As LongDim out[8192] As ByteDim len As LongDim ret As LongDim id3 As ID3V2If mc.status = TRUE Then Exit FunctionZeroMemory(VarPtr(mc), SizeOf(ABMP3DEC_CTX))mc.hF = CreateFile(mp3file, GENERIC_READ, FILE_SHARE_READ, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)If mc.hF = INVALID_HANDLE_VALUE Then Exit Function'ID3V2ReadFile(mc.hF, VarPtr(id3), SizeOf(ID3V2), VarPtr(len), ByVal 0)If strstr(id3.ID3, "ID3") ThenIf Not (id3.size[0] And h80) Then mc.startpos = unpack_sint28(id3.size)+10 End IfSetFilePointer(mc.hF, mc.startpos, 0, FILE_BEGIN)InitMP3(VarPtr(mc.mp))'一度読み込んでフォーマットを取得If ReadFile(mc.hF, mc.buf, 1024, VarPtr(len), ByVal 0) = FALSE Or len = 0 Then'読み込みエラーEnd Ifret = decodeMP3(VarPtr(mc.mp), mc.buf, len, out, 8192, VarPtr(size))If ret MP3_OK Then'デコードエラーEnd Ifmc.rate = rate_tbl[mc.mp.fr.sampling_frequency]mc.ch = mc.mp.fr.stereo'リセットSetFilePointer(mc.hF, mc.startpos, 0, FILE_BEGIN)ExitMP3(VarPtr(mc.mp))InitMP3(VarPtr(mc.mp))mc.status = TRUEOpenMp3 = TRUEEnd Function'サンプリングレート、チャンネル数を得るFunction GetFormat(rate As *Long, ch As *Long) As LongIf mc.status = FALSE Then Exit FunctionSetDWord(rate, mc.rate)SetDWord(ch, mc.ch)End Function'デコードし、そのサイズを返す。Function ReadMp3(pcm As *Byte, buflen As Long) As DWordDim pos As DWordDim len As DWordDim siz As DWordDim ret As LongIf mc.status = FALSE Then Exit Functionpos = 0siz = 0Do If mc.more = FALSE Thenret = ReadFile(mc.hF, mc.buf, 16384, VarPtr(len), ByVal 0)If ret = FALSE Or len = 0 Then *JUMPret = decodeMP3(VarPtr(mc.mp), mc.buf, len, VarPtr(pcm[pos]), 8192, VarPtr(siz))If ret = MP3_OK Then mc.more = TRUEEnd IfWhile (ret = MP3_OK)pos = pos + sizIf pos+8192 buflen Then *JUMPret = decodeMP3(VarPtr(mc.mp), NULL, 0, VarPtr(pcm[pos]), 8192, VarPtr(siz))Wendmc.more = FALSE'次に読み込みが必要Loop While pos+8192 buflen*JUMPReadMp3 = posmc.pcmb = mc.pcmb + posEnd Function'終わりFunction CloseMp3() As LongIf mc.status = FALSE Then Exit FunctionCloseHandle(mc.hF)ExitMP3(VarPtr(mc.mp))mc.status = FALSEEnd Function つぎに再生部 #include api_mmsys.sbp #include "abmpglib.abp"Declare Function waveOutOpen Lib "winmm" (phwo As *HWAVEOUT, uDeviceID As DWord, pwfx As *WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULTDeclare Function waveOutClose Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutPrepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutUnprepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutWrite Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) As MMRESULTDeclare Function waveOutPause Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutRestart Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutReset Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutGetPosition Lib "winmm" (hwo As HWAVEOUT, pmmt As *MMTIME, cbmmt As DWord) As MMRESULTDeclare Function MulDiv Lib "kernel32" (nNumber As Long, nNumerator As Long, nDenominator As Long) As LongConst WAVE_MAPPER = (-1)Const CALLBACK_FUNCTION = H00030000lConst WOM_OPEN = H3BBConst WOM_CLOSE = H3BCConst WOM_DONE = H3BDConst WHDR_DONE = H00000001Const WHDR_PREPARED = H00000002Const WHDR_BEGINLOOP = H00000004Const WHDR_ENDLOOP = H00000008Const WHDR_INQUEUE = H00000010Const TIME_MS = H0001Const TIME_SAMPLES = H0002Const TIME_BYTES = H0004Const TIME_SMPTE = H0008Const TIME_MIDI = H0010Const TIME_TICKS = H0020TypeDef MMRESULT = DWordTypedef HWAVEOUT = VoidPtrType WAVEHDR lpData As *Byte dwBufferLength As DWord dwBytesRecorded As DWord dwUser As DWord dwFlags As DWord dwLoops As DWord lpNext As *WAVEHDR reserved As *DWord End TypeType MMTIMEwType As DWordu As DWordu2 As DWordEnd TypeClass Mp3PlayerPrivatebuffer[2] As *Bytehwo As HWAVEOUTwfe As WAVEFORMATEXswitch As LongFunction GetMp3Header() As LongDim head[3] As ByteDim r As DWordDim c As DWordGetFormat(VarPtr(r), VarPtr(c))wfe.wFormatTag = 1wfe.nChannels = cwfe.nSamplesPerSec = rwfe.wBitsPerSample = 16wfe.cbSize = Sizeof(WAVEFORMATEX)wfe.nBlockAlign = wfe.nChannels * wfe.wBitsPerSample/8wfe.nAvgBytesPerSec = wfe.nSamplesPerSec * wfe.nBlockAlignGetMp3Header = 1End FunctionSub waveOutProc(hwo As HWAVEOUT, uMsg As DWord, dwInstance As *DWord, dwParam1 As DWord, dwParam2 As DWord)Dim x As *Mp3Playerx = dwInstanceSelect Case uMsgCase WOM_CLOSECase WOM_DONEx- wh[1].dwUser = x- wh[1].dwUser - 1If x- wh[0].dwUser = 0 Then x- read(hwo)Case WOM_OPENEnd SelectEnd SubPublicwh[2] As WAVEHDRSub read(hwo As HWAVEOUT)Dim r As DWordIf hwo = NULL Or wh[0].dwUser = 1 Or wh[1].dwUser 1 Then Exit SubwaveOutUnprepareHeader(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))r = ReadMp3(buffer[switch], wfe.nAvgBytesPerSec)wh[switch].lpData = buffer[switch]wh[switch].dwBufferLength = rIf r = 0 Then wh[0].dwUser = 1'これ以上再生しませんwaveOutPrepareHeader(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))waveOutWrite(hwo, VarPtr(wh[switch]), SizeOf(WAVEHDR))wh[1].dwUser = wh[1].dwUser + 1switch = switch + 1If switch = 2 Then switch = 0End SubFunction play(infile As *Byte) As LongIf hwo NULL Then Exit FunctionIf OpenMp3(infile) = FALSE Then Exit FunctionIf GetMp3Header() = 0 ThenCloseMp3()Exit FunctionEnd Ifbuffer[0] = malloc(wfe.nAvgBytesPerSec)buffer[1] = malloc(wfe.nAvgBytesPerSec)waveOutOpen( VarPtr(hwo), WAVE_MAPPER, VarPtr(wfe), AddressOf(waveOutProc) ,VarPtr(this), CALLBACK_FUNCTION)read(hwo)Sleep(500)read(hwo)play = 1End FunctionSub stop() As LongIf hwo = NULL Then Exit Subwh[0].dwUser = 1waveOutReset(hwo)While wh[1].dwUser 0Sleep(1)WendwaveOutUnprepareHeader(hwo, VarPtr(wh[0]), SizeOf(WAVEHDR))waveOutUnprepareHeader(hwo, VarPtr(wh[0]), SizeOf(WAVEHDR))free(buffer[0])free(buffer[1])waveOutClose(hwo)CloseMp3()hwo = NULLEnd SubFunction state(t As *DWord) As Longstate = wh[1].dwUserIf t = NULL Then Exit FunctionDim mmt As MMTIMEmmt.wType = TIME_SAMPLESwaveOutGetPosition(hwo, VarPtr(mmt), SizeOf(MMTIME))SetDWord(t,MulDiv(mmt.u , 1000, wfe.nSamplesPerSec))End FunctionEnd Class#define SELFTEST#ifdef SELFTEST#N88BASICDim wp As Mp3PlayerDim time As DWordPrint "再生"wp.play("test.mp2")While wp.state(VarPtr(time))Locate 4,1Print time\1000;"sec"Sleep(1000)Wendwp.stop()Print "停止"#endif ファイル名は好きに変えるようにして、 美しい音楽が聴こえてくるはずです。